package org.jeecg.modules.demo.ch.service;

import org.jeecg.modules.demo.ch.entity.ChMaintenancePlanDetail;
import org.jeecg.modules.demo.ch.entity.ChHardwareMaintenancePlanDetail;
import org.jeecg.modules.demo.ch.entity.ChSoftwareOperationPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @Description: 软件运维计划表
 * @Author: jeecg-boot
 * @Date:   2022-10-28
 * @Version: V1.0
 */
public interface IChSoftwareOperationPlanService extends IService<ChSoftwareOperationPlan> {

	/**
	 * 添加一对多
	 *
	 * @param chSoftwareOperationPlan
	 * @param chMaintenancePlanDetailList
	 * @param chHardwareMaintenancePlanDetailList
	 */
	public void saveMain(ChSoftwareOperationPlan chSoftwareOperationPlan,List<ChMaintenancePlanDetail> chMaintenancePlanDetailList,List<ChHardwareMaintenancePlanDetail> chHardwareMaintenancePlanDetailList) ;

	/**
	 * 修改一对多
	 *
	 * @param chSoftwareOperationPlan
	 * @param chMaintenancePlanDetailList
	 * @param chHardwareMaintenancePlanDetailList
	 */
	public void updateMain(ChSoftwareOperationPlan chSoftwareOperationPlan,List<ChMaintenancePlanDetail> chMaintenancePlanDetailList,List<ChHardwareMaintenancePlanDetail> chHardwareMaintenancePlanDetailList);

	/**
	 * 删除一对多
	 *
	 * @param id
	 */
	public void delMain (String id);

	/**
	 * 批量删除一对多
	 *
	 * @param idList
	 */
	public void delBatchMain (Collection<? extends Serializable> idList);

	/**
	 * 默认查询本月以及下个月的
	 * @param authorizationDeadlineBegin
	 * @param authorizationDeadlineEnd
	 * @param hardwareAuthorizationDeadlineBegin
	 * @param hardwareAuthorizationDeadlineEnd
	 * @return
	 */
	int selectChSoftwareOperationPlanListTotalByTime(String authorizationDeadlineBegin,String authorizationDeadlineEnd,String hardwareAuthorizationDeadlineBegin,String hardwareAuthorizationDeadlineEnd,String hardExpirBeginTime,String hardExpirEndTime,String softExpirBeginTime,String softExpirEndTime);

	/**
	 * 默认查询本月以及下个月的
	 * @param pageNo
	 * @param pageSize
	 * @param authorizationDeadlineBegin
	 * @param authorizationDeadlineEnd
	 * @param hardwareAuthorizationDeadlineBegin
	 * @param hardwareAuthorizationDeadlineEnd
	 * @return
	 */
	List<ChSoftwareOperationPlan> selectChSoftwareOperationPlanListByTime(Integer pageNo, Integer pageSize, String authorizationDeadlineBegin, String authorizationDeadlineEnd,String hardwareAuthorizationDeadlineBegin,String hardwareAuthorizationDeadlineEnd,String hardExpirBeginTime,String hardExpirEndTime,String softExpirBeginTime,String softExpirEndTime);
}
